Shared image database with geographic navigation

ABSTRACT

There is disclosed a method and device for operating an image database shared by a plurality of users. In an embodiment, each image captured by a user and stored in a shared image database is associating with the geographic coordinates of the location at which the image was captured. A search engine for the image database is configured to accept geographic coordinates as a search criterion for locating at least one captured image stored in the shared image database. The images having location coordinates within a predefined range of geographic coordinates is displayed to the user.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/812,686, filed Jul. 29, 2015, which is a continuation of U.S. patentapplication Ser. No. 13/924,845, filed Jun. 24, 2013 (issued as U.S.Pat. No. 9,104,696), which is a continuation of U.S. patent applicationSer. No. 13/361,112 filed Jan. 30, 2012 (issued as U.S. Pat. No.8,472,981 on Jun. 25, 2013) which is a continuation of U.S. patentapplication Ser. No. 13/100,681 filed May 4, 2011 (issued as U.S. Pat.No. 8,107,975 on Jan. 31, 2012) which is a continuation of U.S. patentapplication Ser. No. 12/869,963 filed Aug. 27, 2010 (issued as U.S. Pat.No. 7,953,422 on May 31, 2013) which is a continuation of U.S. patentapplication Ser. No. 11/391,560 filed on Mar. 29, 2006 which issued onSep. 14, 2010 as U.S. Pat. No. 7,797,019.

TECHNICAL FIELD

The present disclosure relates generally to the field of wireless datacommunications systems, and more specifically to an image database withgeographic navigation.

BACKGROUND

Image databases for storing and sharing image data are known. Forexample, a digital photo album may store digitized photos and displaythe photos on a computer screen for viewing by a user or multiple users.While the image data may be easily organized by date and time stamp, forexample, organization of the image data by other criteria may belabour-intensive and cumbersome. More efficient systems and methods areneeded.

BRIEF DESCRIPTION OF THE DRAWINGS

In the figures which illustrate exemplary embodiments of the disclosure:

FIG. 1 is a schematic block diagram of an illustrative mobilecommunications device;

FIG. 2 is a schematic block diagram of a communication subsystemcomponent of the communications device of FIG. 1;

FIG. 3 is a schematic block diagram of an illustrative node of awireless network with which the communications device of FIG. 1 maycommunicate;

FIG. 4 is a schematic block diagram of an illustrative host system withwhich the communications device of FIG. 1 may communicate;

FIG. 5 shows an illustrative display of a navigable map with latitudeand longitude lines;

FIGS. 6A to 6C show illustrative displays of navigable maps withspecific latitude and longitude coordinates;

FIG. 7 shows an illustrative flow chart of a method in accordance withan embodiment;

FIG. 8 shows an illustrative flow chart of another method in accordancewith an embodiment;

FIG. 9 shows an illustrative image database table for storinginformation associated with an image file;

FIGS. 10A and 10B show illustrative flow charts of other methods inaccordance with embodiments.

DETAILED DESCRIPTION

In accordance with an aspect, there is provided a computer-implementedmethod executed on a mobile communications device, comprising receivinggeographic coordinates from a user interface, configuring the device forwirelessly accessing a shared image database and causing a search of theimage database, using as a search criterion the geographic coordinates,for at least one image with location coordinates within a predefinedrange of the geographic coordinates, and displaying on the device a viewof images having location coordinates within a predefined range of thegeographic coordinates.

In accordance with an aspect, there is provided a computer-implementedmethod executed on a mobile communications device, comprising obtaininggeographic coordinates from a Global Positioning System (GPS) receiver,configuring the device for wirelessly accessing a shared image databaseand causing a search of the image database, using as a search criterionthe geographic coordinates obtained from the GPS receiver, for at leastone image with location coordinates within a predefined range of thegeographic coordinates, and displaying on the device a view of imageshaving location coordinates within a predefined range of the geographiccoordinates.

In accordance with an aspect, there is provided a computer-implementedmethod executed on a mobile communications device, comprisingdetermining geographic coordinates from a selection of a selected pointon a map displayed on the device, configuring the device for wirelesslyaccessing a shared image database and causing a search of the imagedatabase, using as a search criterion the geographic coordinatesgenerated by the selected point on the map, for at least one image withlocation coordinates within a predefined range of the geographiccoordinates, and displaying on the device a view of images havinglocation coordinates within a predefined range of the geographiccoordinates.

In accordance with an aspect, there is provided a mobile communicationsdevice adapted for operating an image database shared by a plurality ofusers, comprising a user interface for receiving geographic coordinates,an interface for wirelessly accessing a shared image database andcausing a search of the shared image database, using as a searchcriterion the geographic coordinates, for at least one image withlocation coordinates within a predefined range of the geographiccoordinates, and a display for displaying a view of images with locationcoordinates within a predefined range of the geographic coordinates.

In accordance with an aspect, there is provided a mobile communicationsdevice adapted for operating an image database shared by a plurality ofusers, comprising a Global Positioning System for determining geographiccoordinates of a current location of the device, an interface forwirelessly accessing a shared image database and causing a search of theshared image database, using as a search criterion the geographiccoordinates, for at least one image with location coordinates within apredefined range of the geographic coordinates, and a display fordisplaying a view of images with location coordinates within apredefined range of the geographic coordinates.

In accordance with an aspect, there is provided a mobile communicationsdevice adapted for operating an image database shared by a plurality ofusers, comprising a display for displaying a map, a user interface forselecting a point on the map from which geographic coordinates aredetermined, an interface for wirelessly accessing a shared imagedatabase and causing a search of the shared image database, using as asearch criterion the geographic coordinates determined from the point onthe map, for at least one image with location coordinates within apredefined range of the obtained geographic coordinates, and wherein thedisplay further displays a view of images with location coordinateswithin a predefined range of the geographic coordinates.

As noted above, the present disclosure relates generally to the field ofwireless data communications systems, and more specifically to an imagedatabase with geographic navigation.

In an embodiment, the disclosure may be practiced with a mobilecommunications device in a wireless operating environment. Shown in FIG.1 is a schematic block diagram of illustrative mobile communicationsdevice 100. The communications device 100 may comprise a number ofcomponents, including a main processor 102 which controls the overalloperation of communications device 100. Communication functions,including data and voice communications, may be performed through acommunication subsystem 104. The communication subsystem 104 may receivemessages from and sends messages to a wireless network 200. In thisillustrative embodiment of the communications device 100, thecommunication subsystem 104 may be configured in accordance with theGlobal System for Mobile Communication (GSM) and General Packet RadioServices (GPRS) standards. Presently, the GSM/GPRS wireless network iswidely used, although it is expected that these standards will besuperseded eventually by Enhanced Data GSM Environment (EDGE) andUniversal Mobile Telecommunications Service (UMTS). Other standards arestill being defined, but it is believed that they will have similaritiesto the network behaviour described herein, and it will also beunderstood by persons skilled in the art that the embodiments describedherein are intended to use any other suitable standards that may bedeveloped in the future.

In the illustrative example in FIG. 1, the wireless link connecting thecommunication subsystem 104 with the wireless network 200 represents oneor more different Radio Frequency (RF) channels, operating according todefined protocols specified for GSM/GPRS communications. With newernetwork protocols, these channels may be capable of supporting bothcircuit switched voice communications and packet switched datacommunications.

In alternative implementations, other wireless networks may beassociated with the communications device 100. The different types ofwireless networks that may be employed include, for example,data-centric wireless networks, voice-centric wireless networks, anddual-mode networks that can support both voice and data communicationsover the same physical base stations. Combined dual-mode networksinclude, but are not limited to, Code Division Multiple Access (CDMA) orCDMA2000 networks, GSM/GPRS networks (as mentioned above), and futurethird-generation (3G) networks like EDGE and UMTS. Other examples ofdata-centric networks include WiFi 802.11, Mobitex™ and DataTAC™ networkcommunication systems. Examples of other voice-centric data networksinclude Personal Communication Systems (PCS) networks like GSM and TimeDivision Multiple Access (TDMA) systems.

The main processor 102 may also interact with additional subsystems suchas a random access memory (RAM) 106, a flash memory 108, a display 110,an auxiliary input/output (I/O) subsystem 112, a data port 114, akeyboard 116, a speaker 118, a microphone 120, short-rangecommunications 122 and a GPS subsystem 124.

Some of the subsystems of the communications device 100 may performcommunication-related functions, whereas other subsystems may provide“resident” or on-device functions. By way of example, the display 110and the keyboard 116 may be used for both communication-relatedfunctions, such as entering a text message for transmission over thenetwork 200, and device-resident functions such as a calculator or tasklist. Operating system software used by the main processor 102 istypically stored in a persistent store such as the flash memory 108,which may alternatively be a read-only memory (ROM) or similar storageelement (not shown). Those skilled in the art will appreciate that theoperating system, specific device applications, or parts thereof, may betemporarily loaded into a volatile store such as the RAM 106.

The communications device 100 may send and receive communication signalsover the wireless network 200 after required network registration oractivation procedures have been completed. Network access may beassociated with a subscriber or user of the communications device 100.To identify a user, the communications device 100 may require a SIM/RUIMcard 126 (i.e. Subscriber Identity Module or a Removable User IdentityModule) to be inserted into a SIM/RUIM interface 128 in order tocommunicate with a network. The SIM card or RUIM 126 is one type of aconventional “smart card” that can be used to identify a user of thecommunications device 100 and to personalize the communications device100, among other things Without the SIM card 126, the communicationsdevice 100 is not fully operational for communication with the wirelessnetwork 200. By inserting the SIM card/RUIM 126 into the SIM/RUIMinterface 128, a user can access all subscribed services. Services mayinclude: web browsing and messaging such as email, voice mail, ShortMessage Service (SMS), and Multimedia Messaging Services (MMS). Moreadvanced services may include: point of sale, field service and salesforce automation. The SIM card/RUIM 126 includes a processor and memoryfor storing information. Once the SIM card/RUIM 126 is inserted into theSIM/RUIM interface 128, it is coupled to the main processor 102. Inorder to identify the user, the SIM card/RUIM 126 contains some userparameters such as an International Mobile Subscriber Identity (IMSI).An advantage of using the SIM card/RUIM 126 is that a user is notnecessarily bound by any single physical communications device. The SIMcard/RUIM 126 may store additional user information for a communicationsdevice as well, including datebook (or calendar) information and recentcall information. Alternatively, user identification information canalso be programmed into the flash memory 108.

The communications device 100 may be a battery-powered device and mayinclude a battery interface 132 for receiving one or more rechargeablebatteries 130. In some embodiments, the battery 130 may be a smartbattery with an embedded microprocessor. The battery interface 132 iscoupled to a regulator (not shown), which assists the battery 130 inproviding power V+ to the communications device 100. Although currenttechnology makes use of a battery, future technologies such as microfuel cells may provide the power to the communications device 100.

The main processor 102, in addition to its operating system functions,enables execution of software applications 134 on the communicationsdevice 100. The subset of software applications 134 that control basicdevice operations, including data and voice communication applications,will normally be installed on the communications device 100 during itsmanufacture.

The software applications 134 may include a message application 136. Themessage application 136 can be any suitable software program that allowsa subscriber or user of the communications device 100 to send andreceive electronic messages. Various alternatives exist for the messageapplication 136 as is well known to those skilled in the art. Messagesthat have been sent or received by the user are typically stored inlocal storage 108 of the communications device 100 or some othersuitable storage element in the communications device 100. In analternative embodiment, some of the sent and received messages may bestored remotely from the device 100 such as in a data store of anassociated host system that the communications device 100 communicateswith.

The software applications 134 may also include a GPS map application 137for providing geographic navigation for an image database in accordancewith various embodiments of the disclosure, as will be described indetail further below.

Another program that may be executed by the communications device 100 isa password approval module 138 that may provide approval for userpasswords. The password approval module 138 may execute a passwordapproval method to determine whether the user password specified by theuser of the communications device 100 is approved.

The communications device 100 may further include a device state module140, an address book 142, a Personal Information Manager (PIM) 144, andother modules 146. The device state module 140 may provide persistence,i.e. the device state module 140 ensures that important device data isstored in persistent memory, such as the flash memory 108, so that thedata is not lost when the communications device 100 is turned off orloses power.

The address book 142 may provide information for a list of contacts forthe user. For a given contact in the address book, the information caninclude the name, phone number, work address and email address of thecontact, among other information. As will be explained further below,the contents of address book 142 may be one possible source for a listof contacts to be added to a whitelist for the user of communicationsdevice 100.

The other modules 146 may include a configuration module (not shown) aswell as other modules that can be used in conjunction with the SIM/RUIMinterface 128.

The PIM 144 may have functionality for organizing and managing dataitems of interest to a user, such as, but not limited to, email,calendar events, voice mails, appointments, and task items. A PIMapplication has the ability to send and receive data items via thewireless network 200. PIM data items may be seamlessly integrated,synchronized, and updated via the wireless network 200 with thecommunications device user's corresponding data items stored and/orassociated with a host computer system. This functionality creates amirrored host computer on the communications device 100 with respect tosuch items. This can be particularly advantageous when the host computersystem is the communications device user's office computer system.

Additional applications may also be loaded onto the communicationsdevice 100 through at least one of the wireless network 200, theauxiliary I/O subsystem 112, the data port 114, the short-rangecommunications subsystem 122, or GPS subsystem 124. This flexibility inapplication installation increases the functionality of thecommunications device 100 and may provide enhanced on-device functions,communication-related functions, or both. For example, securecommunication applications may enable electronic commerce functions andother such financial transactions to be performed using thecommunications device 100.

The data port 114 enables a subscriber or user to set preferencesthrough an external device or software application and extends thecapabilities of the communications device 100 by providing forinformation or software downloads to the communications device 100 otherthan through a wireless communication network. The alternate downloadpath may, for example, be used to load an encryption key onto thecommunications device 100 through a direct and thus reliable and trustedconnection to provide secure device communication.

The data port 114 can be any suitable port that enables datacommunication between the communications device 100 and anothercomputing device. The data port can be a serial or a parallel port. Insome instances, the data port 114 can be a USB port that includes datalines for data transfer and a supply line that can provide a chargingcurrent to charge the battery 130 of the communications device 100.

The short-range communications subsystem 122 provides for communicationbetween the communications device 100 and different systems or devices,without the use of the wireless network 200. For example, the subsystem122 may include an infrared device and associated circuits andcomponents for short-range communication. Examples of short-rangecommunication standards include standards developed by the Infrared DataAssociation (IrDA), Bluetooth, and the 802.11 family of standardsdeveloped by IEEE.

In use, a received signal such as a text message, an email message, orweb page download will be processed by the communication subsystem 104and input to the main processor 102. The main processor 102 will thenprocess the received signal for output to the display 110 oralternatively to the auxiliary I/O subsystem 112. A subscriber or usermay also compose data items, such as email messages, for example, usingthe keyboard 116 in conjunction with the display 110 and possibly theauxiliary I/O subsystem 112. The auxiliary subsystem 112 may includedevices such as: a touch screen, mouse, track ball, infrared fingerprintdetector, or a roller wheel with dynamic button pressing capability. Thekeyboard 116 is preferably an alphanumeric keyboard and/ortelephone-type keypad. However, other types of keyboards may also beused. A composed item may be transmitted over the wireless network 200through the communication subsystem 104.

For voice communications, the overall operation of the communicationsdevice 100 is substantially similar, except that the received signalsare output to the speaker 118, and signals for transmission aregenerated by the microphone 120. Alternative voice or audio I/Osubsystems, such as a voice message recording subsystem, can also beimplemented on the communications device 100. Although voice or audiosignal output is accomplished primarily through the speaker 118, thedisplay 110 can also be used to provide additional information such asthe identity of a calling party, duration of a voice call, or othervoice call related information.

For image capture, a camera 121 may be provided which may include alense and a light sensor, such as a charge-coupled device (CCD) array.The image format may be any one of a number of standard image formatssuch as Tagged-Image File Format (TIFF) and Joint Photographic ExpertsGroup (JPEG), or a proprietary image format. The size of the CCD sensorand the default image size may be suitably selected for the imageresolution required for a particular application.

The image capture may be user controlled by a dedicated or definedcamera shutter button on keyboard 116, for example. The captured imagemay be processed by processor 102, displayed on display 110, and storedin local storage, such as RAM 106 or flash memory 108. In order tominimize consumption of memory resources on communications device 100,the image may be transmitted from communications device 100 to a hostsystem when it is convenient to do so. This will be explained in moredetail further below.

Referring now to FIG. 2, a block diagram of the communication subsystemcomponent 104 of FIG. 1 is shown. The communication subsystem 104 maycomprise a receiver 210 and a transmitter 212, as well as associatedcomponents such as one or more embedded or internal antenna elements214, 216, Local Oscillators (LOs) 218, and a processing module such as aDigital Signal Processor (DSP) 220. As will be apparent to those skilledin the field of communications, the particular design of thecommunication subsystem 104 is dependent upon the communication networkwith which the communications device 100 is intended to operate. Thus,it should be understood that the design illustrated in FIG. 2 servesonly as one example.

Signals received by the antenna 214 through the wireless network 200 areinput to the receiver 210, which can perform such common receiverfunctions as signal amplification, frequency down conversion, filtering,channel selection, and analog-to-digital (A/D) conversion. A/Dconversion of a received signal allows more complex communicationfunctions such as demodulation and decoding to be performed in the DSP220. In a similar manner, signals to be transmitted are processed,including modulation and encoding, by the DSP 220. These DSP-processedsignals are input to the transmitter 212 for digital-to-analog (D/A)conversion, frequency up conversion, filtering, amplification andtransmission over the wireless network 200 via the antenna 216. The DSP220 not only processes communication signals, but also provides forreceiver and transmitter control. For example, the gains applied tocommunication signals in the receiver 210 and transmitter 212 can beadaptively controlled through automatic gain control algorithmsimplemented in the DSP 220.

The wireless link between the communications device 100 and the wirelessnetwork 200 can contain one or more different channels, typicallydifferent RF channels, and associated protocols used between thecommunications device 100 and the wireless network 200. An RF channel isa limited resource that must be conserved, typically due to limits inoverall bandwidth and limited battery power of the communications device100.

When the communications device 100 is fully operational, the transmitter212 is typically keyed or turned on only when it is transmitting to thewireless network 200 and is otherwise turned off to conserve resources.Similarly, the receiver 210 is periodically turned off to conserve poweruntil it is needed to receive signals or information (if at all) duringdesignated time periods.

Referring now to FIG. 3, a block diagram of an exemplary implementationof a node of the wireless network 200 is shown as 302. In practice, thewireless network 200 comprises one or more nodes 302. The communicationsdevice 100 communicates with the node 302. In the exemplaryimplementation of FIG. 3, the node 302 is configured in accordance withGeneral Packet Radio Service (GPRS) and Global Systems for Mobile (GSM)technologies. The node 302 includes a base station controller (BSC) 304with an associated tower station 306, a Packet Control Unit (PCU) 308added for GPRS support in GSM, a Mobile Switching Center (MSC) 310, aHome Location Register (HLR) 312, a Visitor Location Registry (VLR) 314,a Serving GPRS Support Node (SGSN) 316, a Gateway GPRS Support Node(GGSN) 318, and a Dynamic Host Configuration Protocol (DHCP) 320. Thislist of components is not meant to be an exhaustive list of thecomponents of every node 302 within a GSM/GPRS network, but rather alist of components that are commonly used in communications through thewireless network 200.

In a GSM network, the MSC 310 is coupled to the BSC 304 and to alandline network, such as a Public Switched Telephone Network (PSTN) 322to satisfy circuit switching requirements. The connection through PCU308, SGSN 316 and GGSN 318 to the public or private network (Internet)324 (also referred to herein generally as a shared networkinfrastructure) represents the data path for GPRS capable communicationsdevices. In a GSM network extended with GPRS capabilities, the BSC 304also contains a Packet Control Unit (PCU) 308 that connects to the SGSN316 to control segmentation, radio channel allocation and to satisfypacket switched requirements. To track communications device locationand availability for both circuit switched and packet switchedmanagement, the HLR 312 is shared between the MSC 310 and the SGSN 316.Access to the VLR 314 is controlled by the MSC 310.

The station 306 is a fixed transceiver station. The station 306 and BSC304 together form the fixed transceiver equipment. The fixed transceiverequipment provides wireless network coverage for a particular coveragearea commonly referred to as a “cell”. The fixed transceiver equipmenttransmits communication signals to and receives communication signalsfrom communications devices within its cell via the station 306. Thefixed transceiver equipment normally performs such functions asmodulation and possibly encoding and/or encryption of signals to betransmitted to the communications device 100 in accordance withparticular, usually predetermined, communication protocols andparameters, under control of its controller. The fixed transceiverequipment similarly demodulates and possibly decodes and decrypts, ifnecessary, any communication signals received from the communicationsdevice 100 within its cell. The communication protocols and parametersmay vary between different nodes. For example, one node may employ adifferent modulation scheme and operate at different frequencies thanother nodes.

For all communications devices 100 registered with a specific network,permanent configuration data such as a user profile is stored in the HLR312. The HLR 312 also contains location information for each registeredcommunications device and can be queried to determine the currentlocation of a communications device. The MSC 310 is responsible for agroup of location areas and stores the data of the communicationsdevices currently in its area of responsibility in the VLR 314. Further,the VLR 314 also contains information on communications devices that arevisiting other networks. The information in the VLR 314 includes part ofthe permanent communications device data transmitted from the HLR 312 tothe VLR 314 for faster access. By moving additional information from aremote HLR 312 node to the VLR 314, the amount of traffic between thesenodes can be reduced so that voice and data services can be providedwith faster response times and at the same time require less use ofcomputing resources.

The SGSN 316 and GGSN 318 are elements added for GPRS support; namelypacket switched data support, within GSM. The SGSN 316 and MSC 310 havesimilar responsibilities within the wireless network 200 by keepingtrack of the location of each communications device 100. The SGSN 316also performs security functions and access control for data traffic onthe wireless network 200. The GGSN 318 provides Internetworkingconnections with external packet switched networks and connects to oneor more SGSN's 316 via an Internet Protocol (IP) backbone networkoperated within the network 200. During normal operations, a givencommunications device 100 must perform a “GPRS Attach” to acquire an IPaddress and to access data services. This requirement is not present incircuit switched voice channels as Integrated Services Digital Network(ISDN) addresses are used for routing incoming and outgoing calls.Currently, all GPRS capable networks use private, dynamically assignedIP addresses, thus requiring the DHCP server 320 to be connected to theGGSN 318. There are many mechanisms for dynamic IP assignment, includingusing a combination of a Remote Authentication Dial-In User Service(RADIUS) server and DHCP server. Once the GPRS Attach is complete, alogical connection is established from the communications device 100,through the PCU 308, and the SGSN 316 to an Access Point Node (APN)within the GGSN 318. The APN represents a logical end of an IP tunnelthat can either access direct Internet compatible services or privatenetwork connections. The APN also represents a security mechanism forthe wireless network 200, insofar as each communications device 100 mustbe assigned to one or more APNs and the communications devices 100cannot exchange data without first performing a GPRS Attach to an APNthat it has been authorized to use. The APN may be considered to besimilar to an Internet domain name such as “myconnection.wireless.com”.

Once the GPRS Attach is complete, a tunnel is created and all traffic isexchanged within standard IP packets using any protocol that can besupported in IP packets. This includes tunnelling methods such as IPover IP as in the case with some IPSecurity (IPsec) connections usedwith Virtual Private Networks (VPN). These tunnels are also referred toas Packet Data Protocol (PDP) contexts and there are a limited number ofthese available in the wireless network 200. To maximize use of the PDPContexts, the wireless network 200 will run an idle timer for each PDPContext to determine if there is a lack of activity. When thecommunications device 100 is not using its PDP Context, the PDP Contextcan be de-allocated and the IP address returned to the IP address poolmanaged by the DHCP server 320.

Referring now to FIG. 4, shown therein is a block diagram illustratingcomponents of an exemplary configuration of a host system 350. In oneinstance, the host system 350 can be a corporate enterprise. The hostsystem 350 will typically be a corporate office or other local areanetwork (LAN), but may also be a home office computer system or someother private system, for example, in variant implementations. In theexample shown in FIG. 4, the host system 350 is depicted as a LAN of anorganization to which a user of the communications device 100 belongs.Typically, a plurality of communications devices can communicatewirelessly with the host system 350 through one or more nodes 302.

The host system 350 comprises a number of network components connectedto each other by the LAN connections 460. For instance, a user's desktopcomputer 462 a with an accompanying cradle 464 for the user'scommunications device 100 is situated on a LAN connection. The cradle464 for the communications device 100 can be coupled to the computer 462a by a serial or a Universal Serial Bus (USB) connection, for example.Other user computers 462 b are also situated on the LAN 460, and eachmay or may not be equipped with an accompanying cradle 464 that issuitable for a communications device. The cradle 464 facilitates theloading of information (e.g. PIM data, private symmetric encryption keysto facilitate secure communications between the communications device100 and the host system 350, etc) from the user computer 462 a to thecommunications device 100, and may be particularly useful for bulkinformation updates often performed in initializing the communicationsdevice 100 for use. The information downloaded to the communicationsdevice 100 may include certificates used in the exchange of messages.

It will be understood by persons skilled in the art that the usercomputers 462 a, 462 b, 462 c will typically also be connected to otherperipheral devices, such as printers, etc. which are not explicitlyshown in FIG. 4. Furthermore, only a subset of network components of thehost system 350 are shown in FIG. 4 for ease of exposition, and it willbe understood by persons skilled in the art that the host system 350will comprise additional components that are not explicitly shown inFIG. 4 for this exemplary configuration. More generally, the host system350 may represent a smaller part of a larger network (not shown) of theorganization, and may comprise different components and/or be arrangedin different topologies than that shown in the exemplary embodiment ofFIG. 4.

In this exemplary embodiment, the communications device 100 communicateswith the host system 350 through node 302 of the wireless network 200and a shared network infrastructure 324 such as a service providernetwork or the public Internet. Access to the host system 350 may beprovided through one or more routers (not shown), and computing devicesof the host system 350 may operate from behind a firewall or proxyserver 466. The proxy server 466 provides a secure node and a wirelessInternet gateway for the host system 350. The proxy server 466intelligently routes data to the correct destination server.

In some implementations, the host system 350 can include a wireless VPNrouter (not shown) to facilitate data exchange between the host system350 and the communications device 100. The wireless VPN router allows aVPN connection to be established directly through a specific wirelessnetwork to the communications device 100. The wireless VPN router can beused with the Internet Protocol (IP) Version 6 (IPV6) and IP-basedwireless networks. This protocol can provide enough IP addresses so thateach communications device has a dedicated IP address, making itpossible to push information to a communications device at any time. Anadvantage of using a wireless VPN router is that it can be anoff-the-shelf VPN component, and does not require a separate wirelessgateway and separate wireless infrastructure. A VPN connection canpreferably be a Transmission Control Protocol (TCP)/IP or User DatagramProtocol (UDP)/IP connection for delivering the messages directly to thecommunications device 100 in this alternative implementation.

Messages intended for a user of the communications device 100 areinitially received by a message server 468 of the host system 350. Suchmessages may originate from any number of sources. For instance, amessage may have been sent by a sender from the computer 462 b withinthe host system 350, from a different communications device (not shown)connected to the wireless network 200 or to a different wirelessnetwork, or from a different computing device or other device capable ofsending messages, via the shared network infrastructure 324, possiblythrough an application service provider (ASP) or Internet serviceprovider (ISP), for example.

The message server 468 typically acts as the primary interface for theexchange of messages, particularly email messages, within theorganization and over the shared network infrastructure 324. Each userin the organization that has been set up to send and receive messages istypically associated with a user account managed by the message server468. Some exemplary implementations of the message server 468 include aMicrosoft Exchange™ server, a Lotus Domino™ server, a Novell Groupwise™server, or another suitable mail server installed in a corporateenvironment. In some implementations, the host system 350 may comprisemultiple message servers 468. The message server 468 may also be adaptedto provide additional functions beyond message management, including themanagement of data associated with calendars and task lists, forexample.

When messages are received by the message server 468, they are typicallystored in a data store associated with the message server 468. In someembodiments, the data store may be a separate hardware unit (not shown)that the message server 468 communicates with. Messages can besubsequently retrieved and delivered to users by accessing the messageserver 468. For instance, an email client application operating on auser's computer 462 a may request the email messages associated withthat user's account stored on the data store associated with the messageserver 468. These messages are then retrieved from the data store andstored locally on the computer 462 a. The data store associated with themessage server 468 can store copies of each message that is locallystored on the communications device 100. Alternatively, the data storeassociated with the message server 468 can store all of the messages forthe user of the communications device 100 and only a smaller number ofmessages can be stored on the communications device 100 to conservememory. For instance, the most recent messages (in the past two to threemonths for example) can be stored on the communications device 100.

When operating the communications device 100, the user may wish to haveemail messages retrieved for delivery to the handheld. An email clientapplication operating on the communications device 100 may also requestmessages associated with the user's account from the message server 468.The email client may be configured (either by the user or by anadministrator, possibly in accordance with an organization's informationtechnology (IT) policy) to make this request at the direction of theuser, at some pre-defined time interval, or upon the occurrence of somepre-defined event. In some implementations, the communications device100 is assigned its own email address, and messages addressedspecifically to the communications device 100 are automaticallyredirected to the communications device 100 as they are received by themessage server 468.

To facilitate the wireless communication of messages and message-relateddata between the communications device 100 and components of the hostsystem 350, a number of wireless communication support components 470may be provided. In some implementations, the wireless communicationsupport components 470 can include a message management server 472, amobile data server 474, a contact server 476, a password policy module478, and the like.

The message management server 472 can be used to specifically providesupport for the management of messages, such as email messages, that areto be handled by communications devices. Generally, while messages arestill stored on the message server 468, the message management server472 can be used to control when, if, and how messages are sent to thecommunications device 100. The message management server 472 alsofacilitates the handling of messages composed on the communicationsdevice 100, which are sent to the message server 468 for subsequentdelivery.

For example, the message management server 472 may monitor the user's“mailbox” (e.g. the message store associated with the user's account onthe message server 468) for new email messages, and apply user-definablefilters to new messages to determine if and how the messages are relayedto the user's communications device 100. The message management server472 may also compress and encrypt new messages (e.g. using an encryptiontechnique such as Data Encryption Standard (DES) or Triple DES) and pushthem to the communications device 100 via the shared networkinfrastructure 324 and the wireless network 200. The message managementserver 472 may also receive messages composed on the communicationsdevice 100 (e.g. encrypted using Triple DES), decrypt and decompress thecomposed messages, re-format the composed messages if desired so thatthey will appear to have originated from the user's computer 462 a, andre-route the composed messages to the message server 468 for delivery.

Certain properties or restrictions associated with messages that are tobe sent from and/or received by the communications device 100 can bedefined (e.g. by an administrator in accordance with IT policy) andenforced by the message management server 472. These may include whetherthe communications device 100 may receive encrypted and/or signedmessages, minimum encryption key sizes, whether outgoing messages mustbe encrypted and/or signed, and whether copies of all secure messagessent from the communications device 100 are to be sent to a pre-definedcopy address, for example.

The message management server 472 may also be adapted to provide othercontrol functions, such as only pushing certain message information orpre-defined portions (e.g. “blocks”) of a message stored on the messageserver 468 to the communications device 100. For example, in oneinstance, when a message is initially retrieved by the communicationsdevice 100 from the message server 468, the message management server472 may push only the first part of a message to the communicationsdevice 100, with the part being of a pre-defined size (e.g. 2 KB). Theuser can then request more of the message, to be delivered insimilar-sized blocks by the message management server 472 to thecommunications device 100, possibly up to a maximum pre-defined messagesize. Accordingly, the message management server 472 facilitates bettercontrol over the type of data and the amount of data that iscommunicated to the communications device 100, and can help to minimizepotential waste of bandwidth or other resources.

The mobile data server 474 encompasses any other server that storesinformation that is relevant to the corporation. The mobile data server474 may include, but is not limited to, databases, online data documentrepositories, customer relationship management (CRM) systems, orenterprise resource planning (ERP) applications.

The contact server 476 can provide information for a list of contactsfor the user in a similar fashion to the address book 142 on thecommunications device 100. Accordingly, for a given contact, the contactserver 476 can include the name, phone number, work address and emailaddress of the contact, among other information. The contact server 476can also provide a global address list that contains the contactinformation for all of the contacts associated with the host system 350.

The IT administrator can use the password policy module 478 to updatethe password policy by, for example, updating a list of pre-specifiedforbidden passwords and their symbolic equivalents. The IT administratorcan also remotely update the password policy of the communicationsdevices by communicating with the password approval module 138 over thenetwork 200 and updating a local copy of the list of pre-specifiedforbidden passwords and the list of symbolic equivalents. The localcopies of these lists can be stored in local storage 108 of thecommunications device 100. Accordingly, the password policy can bemaintained centrally and then communicated to various communicationsdevices 100 using a suitable wireless communication infrastructure suchas that described herein. In some embodiments, the wirelesscommunication infrastructure includes a transport stack that contains aset of communication protocols that enables the host system 350 tocommunicate with the communications device 100. A subset of applicationsprovided by the transport stack can be used to pass IT policy commandsto the operating system of the communications device 100 and can be usedto provide an updated password policy. Alternatively, in some cases, thepassword policy update can also be done over a wired connection, such asvia the cradle 464, for example.

An image database server 480 may store an image database, a databasesearch engine, and a corresponding GPS map application module configuredto communicate and interact with the GPS map application 137 ofcommunications device 100 (see FIG. 1). Image database server 480 may beaccessed by multiple users such that the image database may be shared.As an intermediate step, the GPS map application 137 may alsocommunicate and interact with one or more of the message server 468,message management server 472, mobile data server 474, and contactserver 476 as may be necessary. The function of the image databaseserver 480 and GPS map application modules will be described in detailfurther below.

It will be understood by persons skilled in the art that the messageserver 468, message management server 472, the mobile data server 474,the contact server 476, and the password policy module 478 need not beimplemented on separate physical servers within the host system 350. Forexample, some or all of the functions associated with the messagemanagement server 472 may be integrated with the message server 468, orsome other server in the host system 350. Furthermore, the host system350 may comprise multiple message management servers 472, particularlyin variant implementations where a large number of communicationsdevices need to be supported.

Now referring to FIG. 5, shown is an illustrative navigable map 500 withlatitude and longitude lines. In an embodiment, map 500 may appear ondisplay 110 of communication device 100, for example, by executing GPSmap application 137. The user may navigate the map on display 110 byscrolling left or right, or up and down using dedicated or multifunctionnavigation keys on keyboard 116, for example. Operation of thesenavigation keys may be echoed in display 500 by highlighting one ofnavigation indicators 502 in display 500, for example. Alternatively, ifdisplay 110 is configured as a touch screen, a user may touch one of thenavigation indicators 502 to navigate the map.

Now referring to FIG. 6A, shown is another illustrative navigable map600A. Display 600A may again include navigation indicators 602A whichmay echo operation of navigation keys by the user, or be used tonavigate the map. A display window 604A may provide latitude andlongitude coordinates for a specific location identified in map 600A. Inone possible navigation mode, after moving to a desired point on the mapusing the navigation keys, a user may select the location by pressing aselection key, for example. The latitude and longitude coordinates atthe desired point may then be calculated relative to the latitude andlongitude grid predefined on the map.

In another possible navigation mode, rather than using navigation keys,a user may enter numeric latitude and longitude coordinates via keyboard116 to identify a location to be displayed in display 600A. In theillustrative example in FIG. 6A, entering latitude 43 degrees and 26minutes N, and longitude 80 degrees and 30 minutes W identifiesWaterloo, Ontario at location 606A.

Now referring to FIG. 6B, in another possible navigation mode, ratherthan entering numeric latitude and longitude coordinates, a user mayselect a location from a list of available locations in a scrollablemenu 606B. The selected location in this illustrative example isToronto, Ontario identified on display 600B at location 608B.Corresponding latitude and longitude coordinates may be shown in window604B.

Now referring to FIG. 6C, in yet another navigation mode, the presentlocation of the communications device 100 may be acquired from GPSsubsystem 124 (FIG. 1), for example. Executing GPS map application 137,a map corresponding to the present location of communications device 100as acquired from GPS subsystem 124 may be identified on map 600C ondisplay 110. In this illustrative example, the present location of thecommunications device 100 is Vancouver, British Columbia shown at 606C.The latitude and longitude coordinates for Vancouver, BC may also beshown in window 604C.

Now referring to FIG. 7, shown is an illustrative flow chart of a method700 in accordance with an embodiment. At block 702, using camera 121 ofcommunications device 100, an image may be captured by a user. At block704, using the navigation mode described above with reference to FIG. 6Cand executing GPS map application 137, GPS coordinates for the presentlocation of communications device 100 (when the image was captured atblock 702) may be acquired from GPS subsystem 124.

At block 706, the GPS coordinates acquired from GPS subsystem 124 may beassociated with the captured image. In an embodiment, the associationmay comprise embedding the GPS coordinates into a predefined headerfield of the image file. Alternatively, the GPS coordinates may beassociated with an image file in a predefined manner. For example, theGPS coordinates may be placed in a text or data file, and this text ordata file may be stored together with the image file in a folder. Aplurality of folders may be organized within a hierarchical datastructure, for example.

At block 708, the captured image and associated GPS coordinates may bestored together in local memory 108.

At block 710, the image and associated GPS coordinates may betransmitted from communications device 100 to a host system (e.g. hostsystem 350 shown in FIG. 4). In an embodiment, each image file may besent to the host system as an attachment to an email message. The GPScoordinates associated with the image file may also be included as anattachment to the email message. Alternatively, the GPS coordinatesassociated with the image file may be placed in a predefined field ofthe email message. For example, the GPS coordinates may be placed in theSubject line of the email message, or as the first line of text withinthe body of the email message. Alternatively, a predefined string ofcharacters may be used to delimit the beginning and end of the GPScoordinates.

Now referring to FIG. 8, shown is another method in accordance with anembodiment. At block 802, at the host system (e.g. image database server480 of host system 350 of FIG. 4), the image and the associated GPScoordinates are received. In an embodiment, the image file may bereceived as an attachment to an email message, and the associated GPScoordinates may be received together with the image file in the emailmessage. As noted earlier, the GPS coordinates may be embedded in theimage file, stored within a separate text or data file, or placed withina predefined field or within the body of the email message.

At block 804, the image file and associated GPS coordinates received atblock 804 may be stored at image database server 480. The GPScoordinates can be linked to the image file by storing the latitude andlongitude coordinates and the name of the image file together in arecord. At block 806, executing a GPS map application module on imagedatabase server 480, the GPS coordinates may also be associated with acorresponding map, and the name of the closest town or city availablefrom a list. In this manner, the appropriate map and the name of thetown or city may be readily retrieved together with the image file, sothat a separate lookup for the corresponding map and the name of thetown or city is not required at the time an access request to an imagefile is made.

As an illustrative example, FIG. 9 shows an image database 900 which mayhave a number of defined fields including an image file name 902 linkedto the actual image file, GPS latitude coordinates 904A, GPS longitudecoordinates 904B, a corresponding map 906 on which the GPS coordinatesmay be found, and the name of the town or city 908 associated with theGPS coordinates. Optionally, image database 900 may also include adescription field (not shown) allowing a user specified title or briefdescription of the image file. Various other geographic data associatedwith the image file may be provided in additional columns in imagedatabase 900. As previously noted, image database 900 may be shared andaccessed by multiple users for storage, and search and retrieval ofimages using a suitably configured database search engine.

Now referring to FIGS. 10A and 10B, shown are methods 1000A and 1000Bfor querying and retrieving images from the image database 900. Thisquery and retrieval may be made from any one of the desktop computers462 a to 462 c, or from any mobile device 100 having access to imagedatabase 480 via the networks and components described further above.

As shown in FIG. 10A, at block 1002A, in one query mode, a list ofavailable names of towns and cities having one or more entries in theimage database may be selected (e.g. as shown earlier with reference toFIG. 6B). Upon selecting the town or city, at block 1004A, all recordsin image database 480 may be searched and any records having the name ofthe selected town or city in the Town/City field 908 (FIG. 9) may beselected. At block 1006A, the selected records may be displayed as alist of images that may be selectable by a user. A corresponding filename or brief description, if provided, may also be displayed in thelist.

It will be appreciated that method 1000A may be practiced when a usermay wish, for example, to view images that the user or others have takenin a particular town or city, and stored on image database 900. As anillustrative example, a real estate agent may take a photo of a housefor sale using method 700 described above, and the image may then bestored together with the associated GPS coordinate on an image database900 on image database server 480 available at the corporate offices ofthe real estate company. A potential buyer of a house may want to viewpictures of houses that are available for sale within a particular townor city. If specifying the town or city is too broad and produces toomany hits, a more detailed map of a town or city subdivided into variousreal estate regions may be used instead. Thus, a city may have perhapsten or twenty such real estate regions to choose from. This may beachieved by providing another field in image database 900, or the GPScoordinates stored in image database 900 may be used to lookup thecorresponding real estate region based on predefined GPS coordinateranges for each such real estate region.

In an alternative query mode shown in FIG. 10B, at block 1002B, presentGPS coordinates may be first acquired from GPS subsystem 124. At block1004B, GPS map application 137 may initiate access to the host system350 (e.g. access image database server 480) to perform a query. Thequery may specify, for example, images taken at GPS coordinates within acertain predefined range of the GPS coordinates of the present locationof communications device 100. At block 1006B, images meeting the searchcriteria may be selected, and the selected records may be displayed as alist of images that may be selectable by a user. Again, a correspondingfile name or brief description, if provided, may also be displayed inthe list.

It will be appreciated that method 1000B may be practiced when a user ofmay wish to view images taken by others at his present geographiclocation. As an illustrative example, a tourist may arrive at a touristsite, and may want to view pictures that others have taken at the siteor within a certain distance of the site.

The distance between two latitude/longitude points may be calculatedusing the Vincenty formula or the less accurate Haversine formula, forexample. Much more simply, for the purposes of identifying picturestaken in approximately the same vicinity, a +/− range may be specifiedfor the latitude or longitude coordinates. For example, the +/− rangemay be specified as +/− five minutes in both latitude and longitudecoordinates. The tourist may initiate a query from communications device100 based on this +/− latitude/longitude coordinate range to obtain alist of images that may be available for download from image databaseserver 480.

Alternatively, the tourist may also take his own image at the site, andadd his image to the collection of images already stored in imagedatabase 900 on image database server 480. In this manner, images may beshared publicly so that others may access the images taken at or nearthe same location.

It will also be appreciated that the image database 900 on imagedatabase server 480 may be accessed by multiple users fromcommunications device 100, other communications devices (not shown), andfrom desktop computers 462 a to 462 c using other access methods andsystems. For example, rather than sending an image and associated GPScoordinates to the image database server 480 via email, the image andassociated GPS coordinates may be uploaded by many users via an Internetwebpage application. A suitable user interface may allow each user tonavigate the image database 900 and allow a user to update, manipulateor view the image data stored in the image database 900. The user maynavigate the image database in substantially the same manner asdescribed above with reference to FIGS. 6A and 6B, for example. Usersmay be given different access privileges (e.g. store, search, retrieve,delete) as may be appropriate for a given image database application.

In an alternative embodiment, instead of using latitude/longitudecoordinates as described above, the Universal Transverse Mercator (UTM)grid system may be used. While a different coordinate system may beused, the methods and systems described above may otherwise be practicedin a substantially analogous manner

Thus, in an aspect, there is provided a computer-implemented method foroperating an image database shared by a plurality of users, comprising:in the shared image database, associating with each image captured by auser the geographic coordinates of the location at which the image wascaptured; and configuring a search engine for the image database toaccept geographic coordinates as a search criterion for locating atleast one captured image stored in the shared image database.

In an embodiment, the method further comprises configuring the searchengine for the image database to accept as a search criterion at leastone of a user specified and a global positioning system (GPS) devicespecified numeric geographic coordinates.

In another embodiment, the method further comprises configuring thesearch engine for the image database to accept as a search criteriongeographic coordinates generated by user navigation and selection of adesired point on a map.

In another embodiment, the method further comprises configuring thesearch engine for the image database to receive as search criteria arange of geographic coordinates to locate a plurality of user capturedimages within a certain range of a geographic location.

In yet another embodiment, the method further comprises providing eachuser with a device for acquiring global positioning system (GPS)coordinates at the time of capture of an image, and for associating theacquired GPS coordinates with the captured image.

In another embodiment, the method further comprises configuring thedevice to transmit the captured image and the associated GPS coordinatesfor storage in the shared image database.

In still another embodiment, the device is a wireless communicationsdevice the method further comprises transmitting the captured image andthe associated GPS coordinates wirelessly.

In another aspect of the disclosure, there is provided a system foroperating an image database shared by a plurality of users, comprising:a shared image database for storing images captured by a user, eachimage being associated with the geographic coordinates of the locationat which the image was captured; and a search engine for the imagedatabase configured to accept geographic coordinates as a searchcriterion for locating at least one captured image stored in the sharedimage database.

In an embodiment, the search engine for the image database is configuredto accept as a search criterion at least one of a user specified and aglobal positioning system (GPS) device specified numeric geographiccoordinates.

In another embodiment, the search engine for the image database isconfigured to accept as a search criterion geographic coordinatesgenerated by user navigation and selection of a desired point on a map.

In another embodiment, the search engine for the image database isconfigured to receive as search criteria a range of geographiccoordinates to locate a plurality of user captured images within acertain range of a geographic location.

In yet another embodiment, the system further comprises at least onedevice for acquiring global positioning system (GPS) coordinates at thetime of capture of an image, and for associating the acquired GPScoordinates with the captured image.

In another embodiment, the device is configured to transmit the capturedimage and the associated GPS coordinates for storage in the shared imagedatabase.

In still another embodiment, the device is a wireless communicationsdevice, and the device is configured to transmit the captured image andthe associated GPS coordinates wirelessly.

In another aspect of the disclosure, there is provided a computerreadable medium storing computer code that, when loaded into a computingdevice, adapts the device to operate an image database shared by aplurality of users, the computer readable medium including: code forassociating with each image captured by a user and stored in the imagedatabase the geographic coordinates of the location at which the imagewas captured; and code for configuring a search engine for the imagedatabase to accept geographic coordinates as a search criterion forlocating at least one captured image stored in the shared imagedatabase.

In an embodiment, the computer readable medium further includes code forconfiguring the search engine for the image database to accept as asearch criterion at least one of a user specified and a globalpositioning system (GPS) device specified numeric geographiccoordinates.

In another embodiment, the computer readable medium further includescode for configuring the search engine for the image database to acceptas a search criterion geographic coordinates generated by usernavigation and selection of a desired point on a map.

In another embodiment, the computer readable medium further includescode for configuring the search engine for the image database to receiveas search criteria a range of geographic coordinates to locate aplurality of user captured images within a certain range of a geographiclocation.

In still another embodiment, the computer readable medium furtherincludes code for receiving from each user device a captured image andassociated GPS coordinates for storage in the shared image database.

While various embodiments have been described, it will be appreciatedthat various changes and modifications may be made. More generally, thescope of the disclosure is defined by the following claims.

1. A method at a server comprising: maintaining, in memory of theserver, a shared image database, the shared image database comprisingimages stored in association with a geographic location; receiving arequest from a client device, the request comprising a requestedgeographic location; searching the shared image database for imagescorresponding to the requested geographic location; transmitting theimages corresponding to the requested geographic location to the clientdevice.
 2. The method of claim 1, wherein the requested geographiclocation comprises geographic coordinates.
 3. The method of claim 1,wherein the requested geographic location comprises a place name
 4. Themethod of claim 2, wherein the searching comprises identifying one ormore images within a predetermined range of the geographic coordinates.5. The method of claim 2, wherein the geographic coordinates define aregion and the searching comprises identifying images within the region.6. The method of claim 1, further comprising: receiving a new image, thenew image being associated with a new geographic location; and storingthe new image and the new geographic location in the shared imagedatabase.
 7. The method of claim 6, wherein the new image is received inan attachment to an email.
 8. The method of claim 7, wherein the newgeographic location is specified in a field of the email.
 9. The methodof claim 7, wherein the new geographic location is embedded in the newimage.
 10. A server, comprising: a telecommunications subsystem; memory;and a processor; wherein the telecommunications subsystem and theprocessor cooperate to: maintain, in the memory, a shared imagedatabase, the shared image database comprising images stored inassociation with a geographic location; receive a request from a clientdevice, the request comprising a requested geographic location; searchthe shared image database for images corresponding to the requestedgeographic location; transmit the images corresponding to the requestedgeographic location to the client device.
 11. The server of claim 10,wherein the requested geographic location comprises geographiccoordinates.
 12. The server of claim 10, wherein the requestedgeographic location comprises a place name.
 13. The server of claim 11,wherein the searching comprises identifying one or more images within apredetermined range of the geographic coordinates.
 14. The server ofclaim 11, wherein the geographic coordinates define a region and thesearching comprises identifying images within the region.
 15. The serverof claim 10, wherein the processor and telecommunications subsystemfurther cooperate to: receive a new image, the new image beingassociated with a new geographic location; and store the new image andthe new geographic location in the shared image database.
 16. The serverof claim 15, wherein the new image is received in an attachment to anemail
 17. The server of claim 16, wherein the new geographic location isspecified in a field of the email.
 18. The server of claim 16, whereinthe new geographic location is embedded in the new image.
 19. Anon-transitory computer readable medium having stored thereon executablecode for execution by a processor of a server, the executable codecomprising instructions for: maintaining, in memory of the server, ashared image database, the shared image database comprising imagesstored in association with a geographic location; receiving a requestfrom a client device, the request comprising a requested geographiclocation; searching the shared image database for images correspondingto the requested geographic location; transmitting the imagescorresponding to the requested geographic location to the client device.